﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Threading.Tasks;
using DHQGHN;

namespace DHQGHN.Services.TDT
{
    [ServiceContract]
    public interface IAreaEnumService
    {
        [OperationContract]
        [WebGet(ResponseFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare,
            UriTemplate = "GetAll")]
        List<DAL.Models.TDT.AreaEnumerator> GetAll();

        [OperationContract]
        [WebGet(ResponseFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare,
            UriTemplate = "GetAllPaging/{pageSize}/{pageIndex}")]
        List<DAL.Models.TDT.AreaEnumerator> GetAllPaging(string pageSize, string pageIndex);

        [OperationContract]
        [WebGet(ResponseFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare,
            UriTemplate = "GetById/{areaEnumID}")]
        DAL.Models.TDT.AreaEnumerator GetById(string areaEnumID);
        [OperationContract]
        [WebGet(ResponseFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare,
            UriTemplate = "GetByEnumID/{enumID}")]
        List<DAL.Models.TDT.AreaEnumerator> GetByEnumID(string enumID);

        [OperationContract]
        [WebInvoke(Method = "POST",
            ResponseFormat = WebMessageFormat.Json,
            RequestFormat = WebMessageFormat.Json,
            UriTemplate = "AddAreaEnumerator")]
        void AddAreaEnumerator(DAL.Models.TDT.AreaEnumerator obj);
    
        [OperationContract]
        [WebInvoke(Method = "POST",
            ResponseFormat = WebMessageFormat.Json,
            RequestFormat = WebMessageFormat.Json,
            UriTemplate = "DeleteAreaEnumerator")]
        void DeleteAreaEnumerator(DAL.Models.TDT.AreaEnumerator obj);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="customer"></param>
        [OperationContract]
        [WebInvoke(Method = "POST",
            ResponseFormat = WebMessageFormat.Json,
            RequestFormat = WebMessageFormat.Json,
            UriTemplate = "EditAreaEnumerator")]
        void EditAreaEnumerator(DAL.Models.TDT.AreaEnumerator areaEnum);
    }
}
